1. Field of the Invention
The invention relates to the integration of multiple applications on one chip card.
2. Description of Related Art
Cards, roughly in the size and shape of a credit card, with an integrated electronic chip, and made preferably of plastic or metal are known today as data-carrier cards or chip cards. In contrast to simple storage cards which are also known as memory-chip cards or memory cards, intelligent data-carrier cards, also known as smart cards, possess, in addition to their memory function, their own processor for control of the data stored on the chip of the data-carrier card. This makes better protection of the data possible, and results in improved functioning of the chip cards. In general, simple memory cards allow only writing and reading of data. Smart cards, in addition to these functions, also possess functions for structuring of the data, for isolating the data, for administration of the data and for protection of the data.
A chip card typically contains a chip, on which a microprocessor and a memory are integrated. The memory is further divided into a number of individual areas which may be implemented differently according to function.
The chip card contains as a first memory area a non-volatile memory which may not be written to, which is usually designed as a ROM (Read Only Memory), and which shall hereinafter be referred to as a ROM. The ROM generally contains the operating system of the chip card. Furthermore, programs are stored in the ROM which have general functions, for example converting a data flow or coding, or for performing input/output with an automatic machine (for instance, by a "handshake" procedure with an automatic cash machine).
As a further memory area, the chip card has a non-volatile memory which may be written to, which in general is designed as an EEPROM (Electrical Erasable Programmable Read Only Memory), or as an EPROM (Electrical Programmable ROM) or as an OT/PROM (One Time PROM). For the sake of simplicity, the nonvolatile memory which may be written to shall hereinafter be designated as EEPROM without, however, indicating thereby a limitation of those non-volatile memories which may be written to as only EEPROMs. Application programs are stored in general in the EEPROM for applications with the chip card.
Finally, the chip card generally has yet another volatile memory which may be written to and which is in general designed as a RAM (Random Access Memory), and which shall hereinafter be designated as a RAM. The RAM serves as the working memory for the microprocessor of the chip card, especially for buffer storage of data.
The functional principle of the chip card shall be explained through the example of a cash chip card. After the chip card is introduced into the automatic cash machine, the microprocessor of the chip card is linked to the automatic machine and set into operation. For the data exchange ("handshake"), the chip card first sends a random number to the automatic cash machine. The automatic cash machine encodes this random number in a second step and sends it back to the chip card as an encrypted number. In a third step, the chip card decrypts the received number with the use of a key and compares the received result with a pre-calculated result. The random number as well as the decrypted calculations are stored in the working memory of the chip card (RAM). The decryption key is filed in the ROM on the other hand, since this key must be especially protected in order to prevent manipulation.
In a fourth step, the automatic cash machine sends a random number to the chip card, which the chip card, in a fifth step, in turn encrypts and sends back to the automatic cash machine. The decryption on the part of the automatic cash machine takes place in a sixth step which is similar to the third step. If the process has been performed successfully to this point, then the chip card and the automatic cash machine are ready for the data exchange, whereby the data exchange generally takes place through encoded data. To perform this, a corresponding application program which is stored in the chip card is invoked. As an application in the example given here, a money deposit with a specific sum shall be performed.
The automatic cash machine queries the chip card as to which application shall be performed, and the chip card answers with: "Cash deposit." Next, the automatic cash machine requests the sum which is to be deposited, and receives the desired amount from the chip card as an answer. At this point, a command is given by the application program on the chip card to write the desired cash sum to a specific area on the EEPROM.
From this example it becomes clear that, after it is invoked, the application program assumes "authority" over the chip card, and hence over the data stored on the chip card. Up to now, only one application has been implemented on each chip card. If, however, several application programs are to be loaded on a chip card, protection must be provided for those programs which may contain sensitive data, so that neither these sensitive data or possibly the entire program may be read out. The problem with the use of chip cards with multiple application programs (the so-called multifunction or multifunctional chip cards) is that access to the application program must be granted to the operator of an application (for instance a bank). However, once he has access to the chip card through the application program, and if he is allowed thereby the authority of use over the chip card by means of the application program, then he may "move freely" on the chip card. He can, if he has the intention of doing so, write his application program in such a manner that the program, along with the intended function, will also perform other activities, without the owner or user of the chip card being aware of it or being capable of having awareness of it. Thus, the operator of the application program may also gain secret information from application programs, such as code numbers or the type and extent of the activities of the other application programs, for example. On the other hand, a different operator of a different application program, or someone who represents himself as such, may look at the secret information of other applications and modify his application accordingly, for example by charging money improperly to a card through knowledge of the functional properties of a cash application.
Memory protection for chip cards is known from IBM Technical Disclosure Bulletin, Vol. 32, Nr. 5a, October 1989, pp. 416-417, hereinafter referred to as TDB Document. For this, the memory of the chip card is divided into a protected and an unprotected area, whereby the operating system and special codes are located on the protected area, while a series of application programs may be filed on the unprotected area. The memory is monitored by an address decoding unit. The address decoding unit responds with a "true" signal when the address on the address bus is located within the monitored area. When the application program attempts to gain access to the protected memory area, the address decoding unit recognizes this and gives a non-maskable interrupt signal to the microprocessor. The microprocessor then directly deletes the data loaded in the register. Through this, only the operating system itself can have access to the protected area of the memory. Application programs hence have no access to the codes and the operating system which are filed on the protected memory area. However, this solution presents the problem that only the operating system, or data for special protection such as codes, can be protected against unauthorized access to the application programs on the chip card. However, the application programs can access each other completely and without interference, so that no reciprocal protection exists.